// 整数的 数组形式  num 是按照从左到右的顺序表示其数字的数组。

// 例如，对于 num = 1321 ，数组形式是 [1,3,2,1] 。
// 给定 num ，整数的 数组形式 ，和整数 k ，返回 整数 num + k 的 数组形式 。


int* addToArrayForm(int* A, int ASize, int k, int* returnSize) {
    int kSize=0;
    int tmp=k;
    while(tmp)
    {
        tmp/=10;
        kSize++;
    }
    int len=ASize>kSize?ASize:kSize;
    int* retArr =(int*)malloc(sizeof(int)*(len+1));
    int numnext=0;
    int retsize=0;
    int Ai=ASize-1;
    while(len--)
    {
        int a=0;
        if(Ai>=0)
        {
            a=A[Ai];
            Ai--;
        }
        int ret=(k%10)+a+numnext;
        k/=10;
        if(ret>9)
        {
            ret-=10;
            numnext=1;
        }
        else
        {
            numnext=0;
        }
        retArr[retsize]=ret;
        retsize++;
    }
    if(numnext==1)
    {
        retArr[retsize]=1;
        retsize++;
    }

    int start=0;
    int end=retsize-1;
    while(start<end)
    {
        int tmp=retArr[end];
        retArr[end]=retArr[start];
        retArr[start]=tmp;
        start++;
        end--;
    }

    *returnSize=retsize;
    return retArr;

}
